package com.ktg.mes.wm.mapper;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ktg.mes.wm.domain.WmItemRecptLine;
import org.apache.ibatis.annotations.Param;

/**
 * 物料入库单行Mapper接口
 *
 * @author yinjinlu
 * @date 2022-05-22
 */
public interface WmItemRecptLineMapper extends BaseMapper<WmItemRecptLine>
{
    /**
     * 查询物料入库单行
     *
     * @param lineId 物料入库单行主键
     * @return 物料入库单行
     */
    public WmItemRecptLine selectWmItemRecptLineByLineId(Long lineId);

    /**
     * 查询物料入库单行列表
     *
     * @param wmItemRecptLine 物料入库单行
     * @return 物料入库单行集合
     */
    public List<WmItemRecptLine> selectWmItemRecptLineList(WmItemRecptLine wmItemRecptLine);



    /**
     * 删除物料入库单行
     *
     * @param lineId 物料入库单行主键
     * @return 结果
     */
    public int deleteWmItemRecptLineByLineId(Long lineId);

    /**
     * 批量删除物料入库单行
     *
     * @param lineIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmItemRecptLineByLineIds(Long[] lineIds);

    public int deleteByRecptId(Long recptId);


    /**
     * 更新产品ID
     *
     */
    public void updateProductItemId();


    /**
     * 删除库存
     */
    public void deleteItemRecptLine();

    /**
     * 查询排产任务taskId 已入库数量,排产数量
     * @param taskId
     * @return
     */
    public List<JSONObject> findTaskQuantityAndItemRecptLineQuantity(WmItemRecptLine line);

    /**
     * 更新产品入库的出库数量
     * @param lineId
     */
    public void updateItemRecptLineOutQuantity(Long lineId);

    IPage<WmItemRecptLine> findList(Page page,@Param("line") WmItemRecptLine wmItemRecptLine);
}
